//package com.xhj.springbootproject.config;
//
//import com.dangdang.ddframe.job.api.simple.SimpleJob;
//import com.dangdang.ddframe.job.config.JobCoreConfiguration;
//import com.dangdang.ddframe.job.config.simple.SimpleJobConfiguration;
//import com.dangdang.ddframe.job.lite.api.JobScheduler;
//import com.dangdang.ddframe.job.lite.api.listener.ElasticJobListener;
//import com.dangdang.ddframe.job.lite.config.LiteJobConfiguration;
//import com.dangdang.ddframe.job.lite.spring.api.SpringJobScheduler;
//import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperRegistryCenter;
//import com.xhj.springbootproject.listener.MyElasticJobListener;
//import com.xhj.springbootproject.simplejob.SimpleJobDemo;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.PropertySource;
//
///**
// * @author ：Xionghaijun
// * @date ：Created in 2019/7/23 10:10 AM
// * @description： 配置job随容器一起启动
// */
//@Configuration
//@PropertySource(value = {"classpath:application-elastic-job.properties"})
//public class ElasticJobConfig {
//
//    @Autowired
//    private ZookeeperRegistryCenter regCenter;
//
//    /**
//     * 配置任务监听器
//     * @return
//     */
//    @Bean
//    public ElasticJobListener elasticJobListener() {
//        return new MyElasticJobListener();
//    }
//
//    /**
//     * 配置任务详细信息
//     * @param jobClass
//     * @param cron
//     * @param shardingTotalCount
//     * @param shardingItemParameters
//     * @return
//     */
//    private LiteJobConfiguration getLiteJobConfiguration(final Class<? extends SimpleJob> jobClass,
//                                                         final String cron,
//                                                         final int shardingTotalCount,
//                                                         final String shardingItemParameters) {
//        return LiteJobConfiguration.newBuilder(new SimpleJobConfiguration(
//                JobCoreConfiguration.newBuilder(jobClass.getName(), cron, shardingTotalCount)
//                        .shardingItemParameters(shardingItemParameters).build()
//                , jobClass.getCanonicalName())
//        ).overwrite(true).build();
//    }
//
//    /**
//     * 定时任务Demo初始化
//     * @param simpleJob
//     * @param cron
//     * @param shardingTotalCount
//     * @param shardingItemParameters
//     * @return
//     */
//    @Bean(initMethod = "init")
//    public JobScheduler simpleJobScheduler(final SimpleJobDemo simpleJob,
//                                           @Value("${stockJob.cron}") final String cron,
//                                           @Value("${stockJob.shardingTotalCount}") final int shardingTotalCount,
//                                           @Value("${stockJob.shardingItemParameters}") final String shardingItemParameters) {
//        MyElasticJobListener elasticJobListener = new MyElasticJobListener();
//        return new SpringJobScheduler(simpleJob, regCenter,
//                getLiteJobConfiguration(simpleJob.getClass(), cron, shardingTotalCount, shardingItemParameters),
//                elasticJobListener);
//    }
//}
